package chapter04;

public class Java08_Object_Static {
    public static void main(String[] args) {

        // 针对于具体对象的属性称之为对象属性/成员属性/实例属性
        // 针对于具体对象的方法称之为对象方法/成员方法/实例方法
        // TODO 静态
        // 和对象无关，只和类相关；
        // 和类相关的方法称之为静态方法
        // 和类相关的属性称之为静态属性
        // 关键词：static，可以通过类名直接访问
        Chinese chinese = new Chinese();
        // Chinese chinese = null;
        /*
            报错：Exception in thread "main" java.lang.NullPointerException: Cannot assign field "name" because "chinese" is null
	at chapter04.Java08_Object_Static.main(Java08_Object_Static.java:7)
	        解释：空指针错误，因为chinese对象为空，所以chinese.name为空，不能赋值
         */
        chinese.name = "zhangsan";

        System.out.println("Hello " + chinese.name + " " + chinese.nationality);

        System.out.println("----------");

        Bird.fly();
        System.out.println(Bird.type);

    }
}
class Chinese {

    // 类中生明属性是表示我们的这个类的所有的对象它的属性是相同的
    String name;
    // 国籍
    String nationality = "China";
}
class Bird {
    static String type = "鸟";
    static void fly() {
        System.out.println("Bird is flying...");
    }
}